Computer software or applications that interact with users often displays graphical information, including text, to facilitate the interaction. The code responsible for generating text in such an application includes specification of text strings, e.g., specifying the exact text to be displayed to the user. The text strings are typically authored in a human language, such as English. When the application will be deployed to non-English speaking users, the application is typically not rewritten in its entirety. Instead, the application is adapted to a new human language, taking into account regional differences and other particularities of the new language. For example, Spanish has gender-specific grammar not found in English. The English language text strings in the application may be translated to the new language so that the displayed text appears “local” or native to the new group of users. This process of adapting an application to different human languages is known as “localization.”
Localization of an application is typically a separate process from application development or original authoring of the application. This is also true for localization of application updates over time. Localization tends to be a separate task for a number of reasons. For one thing, it may not be apparent during application development or original authoring of the application whether the application will be marketed in more than one country or necessarily in which countries. Due to this uncertainty, there is little incentive to initially code text strings included in the application in more than one language. Additionally, localization tends to be a complex, time consuming, and manual process. It would be better for developers to direct their efforts toward application development and original authoring of the application rather than on ancillary tasks such as localization.
Localization of an application typically occurs during runtime, and more particularly, on an as-needed basis, based on the particular interaction with a user. If, for example, the user interacts with the application in such a way that only non-textual information is presented to the user, then localization may not be necessary since the displayed information is not language-specific. On the other hand, if the user interacts with the same application in such a way that textual information must be presented to the user, then localization permits the particular textual information to be displayed to be properly translated text so as to be understandable by the user. Text strings within the application are identified and translated by human translators ahead of time; such translations are then accessed, as needed, during localization for display to the user.
Given the complexity of localizing even a single instance of an application, the complexity can be exponential when the application provides a large amount of textual information to each user, there are a large number of instances of the application running at the same time, the application supports multiple languages, there are frequent updates to the application, the application is being pre-processed to localize for the first time in a new language, and/or the number of users is ever increasing.
The headings provided herein are for convenience only and do not necessarily affect the scope or meaning of the claimed invention.